<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="zh">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.11.0"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>cppMISC: wheels::dm 命名空间参考</title>
<link href="../../tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="../../jquery.js"></script>
<script type="text/javascript" src="../../dynsections.js"></script>
<script type="text/javascript" src="../../clipboard.js"></script>
<link href="../../navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="../../resize.js"></script>
<script type="text/javascript" src="../../cookie.js"></script>
<link href="../../search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="../../search/searchdata.js"></script>
<script type="text/javascript" src="../../search/search.js"></script>
<script type="text/javascript" src="../../darkmode_toggle.js"></script>
<link href="../../doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr id="projectrow">
  <td id="projectalign">
   <div id="projectname">cppMISC<span id="projectnumber">&#160;v1.1</span>
   </div>
   <div id="projectbrief">cppMisc 文档系统</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- 制作者 Doxygen 1.11.0 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "../../search/",'.html');
/* @license-end */
</script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() { codefold.init(1); });
/* @license-end */
</script>
<script type="text/javascript" src="../../menudata.js"></script>
<script type="text/javascript" src="../../menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
  initMenu('../../',true,false,'search.php','搜索',false);
  $(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function(){ initResizable(false); });
/* @license-end */
</script>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">载入中...</div>
<div class="SRStatus" id="Searching">搜索中...</div>
<div class="SRStatus" id="NoMatches">未找到</div>
</div>
</div>
</div>
</div>

<div id="nav-path" class="navpath">
  <ul>
<li class="navelem"><a class="el" href="../../df/d8d/namespacewheels.html">wheels</a></li><li class="navelem"><a class="el" href="../../d8/d2d/namespacewheels_1_1dm.html">dm</a></li>  </ul>
</div>
</div><!-- top -->
<div id="doc-content">
<div class="header">
  <div class="summary">
<a href="#nested-classes">类</a> &#124;
<a href="#typedef-members">类型定义</a> &#124;
<a href="#func-members">函数</a>  </div>
  <div class="headertitle"><div class="title">wheels::dm 命名空间参考</div></div>
</div><!--header-->
<div class="contents">

<p>策略方式定义，  
<a href="#details">更多...</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="nested-classes" name="nested-classes"></a>
类</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../df/db9/structwheels_1_1dm_1_1abstract_factory.html">abstractFactory</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">使用模板实现的抽象工厂模式  <a href="../../df/db9/structwheels_1_1dm_1_1abstract_factory.html#details">更多...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d1/da4/classwheels_1_1dm_1_1adapter.html">adapter</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d6/da7/classwheels_1_1dm_1_1bridge.html">bridge</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../dd/dec/structwheels_1_1dm_1_1_c_a_l_l_e_r___h_e_l_p_e_r____.html">CALLER_HELPER__</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d5/d08/structwheels_1_1dm_1_1_c_a_l_l_e_r___h_e_l_p_e_r_____3_010_00_01adapter_type_00_01tpl_type_01_4.html">CALLER_HELPER__&lt; 0, adapterType, tplType &gt;</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d8/dae/classwheels_1_1dm_1_1caretaker.html">caretaker</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../da/d74/structwheels_1_1dm_1_1colleague_itfc.html">colleagueItfc</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../da/d8b/classwheels_1_1dm_1_1composite.html">composite</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d2/d00/classwheels_1_1dm_1_1decorator.html">decorator</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d8/d98/classwheels_1_1dm_1_1director.html">director</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../dd/d08/classwheels_1_1dm_1_1dispatcher.html">dispatcher</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d6/d04/structwheels_1_1dm_1_1event_data.html">eventData</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d3/dd9/classwheels_1_1dm_1_1facade.html">facade</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d4/d0b/structwheels_1_1dm_1_1_factory.html">Factory</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d5/da3/classwheels_1_1dm_1_1flyweight.html">flyweight</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../de/df6/structwheels_1_1dm_1_1_f_o_r____.html">FOR__</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">抽取tuple数据内容构造参数表的vector  <a href="../../de/df6/structwheels_1_1dm_1_1_f_o_r____.html#details">更多...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d2/d7d/structwheels_1_1dm_1_1_f_o_r_____3_010_00_01tuple_type_01_4.html">FOR__&lt; 0, tupleType &gt;</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d5/db5/classwheels_1_1dm_1_1iterpretor.html">iterpretor</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d7/d38/structwheels_1_1dm_1_1itptor_itfc.html">itptorItfc</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d5/dc5/classwheels_1_1dm_1_1main_loop.html">mainLoop</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d1/dcc/classwheels_1_1dm_1_1mediator.html">mediator</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d2/dec/classwheels_1_1dm_1_1memento.html">memento</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">备忘录内容  <a href="../../d2/dec/classwheels_1_1dm_1_1memento.html#details">更多...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../df/d8d/classwheels_1_1dm_1_1observer.html">observer</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">观察数据变化的模块接口  <a href="../../df/d8d/classwheels_1_1dm_1_1observer.html#details">更多...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../db/d07/classwheels_1_1dm_1_1originator.html">originator</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../de/d49/classwheels_1_1dm_1_1product.html">product</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d6/d2d/classwheels_1_1dm_1_1product_3_01itfc_type_01_4.html">product&lt; itfcType &gt;</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../db/d9d/classwheels_1_1dm_1_1product_3_01itfc_type_00_01_part1_00_01_parts_8_8_8_01_4.html">product&lt; itfcType, Part1, Parts... &gt;</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d8/d0e/structwheels_1_1dm_1_1proto_type.html">protoType</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d7/d17/classwheels_1_1dm_1_1proxy.html">proxy</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d6/d9b/structwheels_1_1dm_1_1proxy_itfc.html">proxyItfc</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d0/d0c/classwheels_1_1dm_1_1rsps_link.html">rspsLink</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../de/d44/classwheels_1_1dm_1_1singleton.html">singleton</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d2/d44/classwheels_1_1dm_1_1state.html">state</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d0/db2/structwheels_1_1dm_1_1strategy.html">strategy</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d7/d86/classwheels_1_1dm_1_1strategy_3_01key_type_00_01func_type_01class_type_1_1_5_01_4.html">strategy&lt; keyType, funcType classType::* &gt;</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d9/d92/classwheels_1_1dm_1_1strategy_3_01key_type_00_01_ret_07_args_8_8_8_08_01_4.html">strategy&lt; keyType, Ret(Args...) &gt;</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d4/d5f/classwheels_1_1dm_1_1strategy_3_01key_type_00_01std_1_1function_3_01_ret_07_args_8_8_8_08_01_4_01_4.html">strategy&lt; keyType, std::function&lt; Ret(Args...) &gt; &gt;</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d4/d71/classwheels_1_1dm_1_1subject.html">subject</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">数据改变的模块  <a href="../../d4/d71/classwheels_1_1dm_1_1subject.html#details">更多...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d7/dbd/structwheels_1_1dm_1_1_t_y_p_e___c_h_k___h_e_l_p_e_r____.html">TYPE_CHK_HELPER__</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d5/d68/structwheels_1_1dm_1_1_t_y_p_e___c_h_k___h_e_l_p_e_r_____3_01itfc_type_01_4.html">TYPE_CHK_HELPER__&lt; itfcType &gt;</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../df/d68/structwheels_1_1dm_1_1_t_y_p_e___c_h_k___h_e_l_p_e_r_____3_01itfc_type_00_01impl_type1_00_01impl_type_8_8_8_01_4.html">TYPE_CHK_HELPER__&lt; itfcType, implType1, implType... &gt;</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d4/d63/classwheels_1_1dm_1_1vistor.html">vistor</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="typedef-members" name="typedef-members"></a>
类型定义</h2></td></tr>
<tr class="memitem:ae63a4dc25f3a1754fa0e0c8f2fb635ac" id="r_ae63a4dc25f3a1754fa0e0c8f2fb635ac"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ae63a4dc25f3a1754fa0e0c8f2fb635ac">commandUI</a> = <a class="el" href="../../d5/dc5/classwheels_1_1dm_1_1main_loop.html">mainLoop</a>&lt; uint32_t &gt;</td></tr>
<tr class="separator:ae63a4dc25f3a1754fa0e0c8f2fb635ac"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afad3dd81eb3b99562dd810be5182c216" id="r_afad3dd81eb3b99562dd810be5182c216"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#afad3dd81eb3b99562dd810be5182c216">commandStr</a> = <a class="el" href="../../d5/dc5/classwheels_1_1dm_1_1main_loop.html">mainLoop</a>&lt; std::string &gt;</td></tr>
<tr class="separator:afad3dd81eb3b99562dd810be5182c216"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a>
函数</h2></td></tr>
<tr class="memitem:a32afe4665c298f8b4fc247ad2d82868d" id="r_a32afe4665c298f8b4fc247ad2d82868d"><td class="memTemplParams" colspan="2">template&lt;typename type , typename ... Args, typename midType  = typename std::decay&lt; type &gt;::type, typename realType  = typename std::conditional&lt;				  std::is_pointer&lt; midType &gt;::value ,				  typename std::remove_pointer&lt;midType&gt;::type,				  midType				  &gt;::type&gt; </td></tr>
<tr class="memitem:a32afe4665c298f8b4fc247ad2d82868d"><td class="memTemplItemLeft" align="right" valign="top">realType *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="#a32afe4665c298f8b4fc247ad2d82868d">factory</a> (Args &amp;&amp;... args)</td></tr>
<tr class="memdesc:a32afe4665c298f8b4fc247ad2d82868d"><td class="mdescLeft">&#160;</td><td class="mdescRight">模板工厂函数  <br /></td></tr>
<tr class="separator:a32afe4665c298f8b4fc247ad2d82868d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3206625d818015246ea4d9f0070aee2b" id="r_a3206625d818015246ea4d9f0070aee2b"><td class="memTemplParams" colspan="2">template&lt;typename type , typename ... Args, typename midType  = typename std::decay&lt; type &gt;::type, typename realType  = typename std::conditional&lt;				  std::is_pointer&lt; midType &gt;::value ,				  typename std::remove_pointer&lt;midType&gt;::type,				  midType				  &gt;::type&gt; </td></tr>
<tr class="memitem:a3206625d818015246ea4d9f0070aee2b"><td class="memTemplItemLeft" align="right" valign="top">std::shared_ptr&lt; realType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="#a3206625d818015246ea4d9f0070aee2b">factoryShared</a> (Args &amp;&amp;... args)</td></tr>
<tr class="separator:a3206625d818015246ea4d9f0070aee2b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a459888ff8eed0ee236b99f61c93f736f" id="r_a459888ff8eed0ee236b99f61c93f736f"><td class="memTemplParams" colspan="2">template&lt;typename type , typename ... Args, typename midType  = typename std::decay&lt; type &gt;::type, typename realType  = typename std::conditional&lt;				  std::is_pointer&lt; midType &gt;::value ,				  typename std::remove_pointer&lt;midType&gt;::type,				  midType				  &gt;::type&gt; </td></tr>
<tr class="memitem:a459888ff8eed0ee236b99f61c93f736f"><td class="memTemplItemLeft" align="right" valign="top">std::shared_ptr&lt; realType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="#a459888ff8eed0ee236b99f61c93f736f">factorySharedCallback</a> (std::function&lt; void(std::shared_ptr&lt; realType &gt;) &gt; fun, Args &amp;&amp;... args)</td></tr>
<tr class="separator:a459888ff8eed0ee236b99f61c93f736f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1a75f597af34b438b0b679fc5283af2c" id="r_a1a75f597af34b438b0b679fc5283af2c"><td class="memTemplParams" colspan="2">template&lt;typename T , typename midType  = typename std::decay&lt; T &gt;::type, typename midType2  = typename std::remove_pointer&lt; midType &gt;::type, typename realType  = typename std::enable_if&lt; 									std::is_copy_constructible&lt;midType2&gt;::value &amp;&amp; std::is_class&lt; midType2 &gt;::value , midType2 							&gt;::type&gt; </td></tr>
<tr class="memitem:a1a75f597af34b438b0b679fc5283af2c"><td class="memTemplItemLeft" align="right" valign="top">realType *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="#a1a75f597af34b438b0b679fc5283af2c">clone</a> (const realType &amp;old)</td></tr>
<tr class="separator:a1a75f597af34b438b0b679fc5283af2c"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">详细描述</h2>
<div class="textblock"><p>策略方式定义， </p>
<dl class="tparams"><dt>模板参数</dt><dd>
  <table class="tparams">
    <tr><td class="paramname">keyType,进行判断条件类型，条件在运行过程中必须是唯一的保证能够找到实际最终的策略</td><td></td></tr>
    <tr><td class="paramname">Ret,策略算法的返回值类型</td><td></td></tr>
    <tr><td class="paramname">Args,策略算法的参数类型</td><td></td></tr>
  </table>
  </dd>
</dl>
</div><h2 class="groupheader">类型定义说明</h2>
<a id="afad3dd81eb3b99562dd810be5182c216" name="afad3dd81eb3b99562dd810be5182c216"></a>
<h2 class="memtitle"><span class="permalink"><a href="#afad3dd81eb3b99562dd810be5182c216">&#9670;&#160;</a></span>commandStr</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">using <a class="el" href="#afad3dd81eb3b99562dd810be5182c216">wheels::dm::commandStr</a> = <a class="el" href="../../d5/dc5/classwheels_1_1dm_1_1main_loop.html">mainLoop</a>&lt; std::string &gt;</td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="definition">在文件 <a class="el" href="../../df/d9a/design_m_2command_8hpp_source.html">command.hpp</a> 第 <a class="el" href="../../df/d9a/design_m_2command_8hpp_source.html#l00020">20</a> 行定义.</p>

</div>
</div>
<a id="ae63a4dc25f3a1754fa0e0c8f2fb635ac" name="ae63a4dc25f3a1754fa0e0c8f2fb635ac"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae63a4dc25f3a1754fa0e0c8f2fb635ac">&#9670;&#160;</a></span>commandUI</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">using <a class="el" href="#ae63a4dc25f3a1754fa0e0c8f2fb635ac">wheels::dm::commandUI</a> = <a class="el" href="../../d5/dc5/classwheels_1_1dm_1_1main_loop.html">mainLoop</a>&lt; uint32_t &gt;</td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="definition">在文件 <a class="el" href="../../df/d9a/design_m_2command_8hpp_source.html">command.hpp</a> 第 <a class="el" href="../../df/d9a/design_m_2command_8hpp_source.html#l00019">19</a> 行定义.</p>

</div>
</div>
<h2 class="groupheader">函数说明</h2>
<a id="a1a75f597af34b438b0b679fc5283af2c" name="a1a75f597af34b438b0b679fc5283af2c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1a75f597af34b438b0b679fc5283af2c">&#9670;&#160;</a></span>clone()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T , typename midType  = typename std::decay&lt; T &gt;::type, typename midType2  = typename std::remove_pointer&lt; midType &gt;::type, typename realType  = typename std::enable_if&lt; 									std::is_copy_constructible&lt;midType2&gt;::value &amp;&amp; std::is_class&lt; midType2 &gt;::value , midType2 							&gt;::type&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">realType * wheels::dm::clone </td>
          <td>(</td>
          <td class="paramtype">const realType &amp;</td>          <td class="paramname"><span class="paramname"><em>old</em></span></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="definition">在文件 <a class="el" href="../../db/dee/proto_type_8hpp_source.html">protoType.hpp</a> 第 <a class="el" href="../../db/dee/proto_type_8hpp_source.html#l00036">36</a> 行定义.</p>

</div>
</div>
<a id="a32afe4665c298f8b4fc247ad2d82868d" name="a32afe4665c298f8b4fc247ad2d82868d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a32afe4665c298f8b4fc247ad2d82868d">&#9670;&#160;</a></span>factory()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename type , typename ... Args, typename midType  = typename std::decay&lt; type &gt;::type, typename realType  = typename std::conditional&lt;				  std::is_pointer&lt; midType &gt;::value ,				  typename std::remove_pointer&lt;midType&gt;::type,				  midType				  &gt;::type&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">realType * wheels::dm::factory </td>
          <td>(</td>
          <td class="paramtype">Args &amp;&amp;...</td>          <td class="paramname"><span class="paramname"><em>args</em></span></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>模板工厂函数 </p>
<dl class="tparams"><dt>模板参数</dt><dd>
  <table class="tparams">
    <tr><td class="paramname">type</td><td>类名称 <br  />
 </td></tr>
    <tr><td class="paramname">Args...</td><td>， 调用构造函数的时候构造函数的参数类型表 </td></tr>
  </table>
  </dd>
</dl>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramname">args</td><td>[ I ], 构造函数的参数表 </td></tr>
    <tr><td class="paramname">errfun[</td><td>I ],发生错误的回调函数 </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">在文件 <a class="el" href="../../dc/d2d/factory_8hpp_source.html">factory.hpp</a> 第 <a class="el" href="../../dc/d2d/factory_8hpp_source.html#l00111">111</a> 行定义.</p>

</div>
</div>
<a id="a3206625d818015246ea4d9f0070aee2b" name="a3206625d818015246ea4d9f0070aee2b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3206625d818015246ea4d9f0070aee2b">&#9670;&#160;</a></span>factoryShared()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename type , typename ... Args, typename midType  = typename std::decay&lt; type &gt;::type, typename realType  = typename std::conditional&lt;				  std::is_pointer&lt; midType &gt;::value ,				  typename std::remove_pointer&lt;midType&gt;::type,				  midType				  &gt;::type&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">std::shared_ptr&lt; realType &gt; wheels::dm::factoryShared </td>
          <td>(</td>
          <td class="paramtype">Args &amp;&amp;...</td>          <td class="paramname"><span class="paramname"><em>args</em></span></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="definition">在文件 <a class="el" href="../../dc/d2d/factory_8hpp_source.html">factory.hpp</a> 第 <a class="el" href="../../dc/d2d/factory_8hpp_source.html#l00133">133</a> 行定义.</p>

</div>
</div>
<a id="a459888ff8eed0ee236b99f61c93f736f" name="a459888ff8eed0ee236b99f61c93f736f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a459888ff8eed0ee236b99f61c93f736f">&#9670;&#160;</a></span>factorySharedCallback()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename type , typename ... Args, typename midType  = typename std::decay&lt; type &gt;::type, typename realType  = typename std::conditional&lt;				  std::is_pointer&lt; midType &gt;::value ,				  typename std::remove_pointer&lt;midType&gt;::type,				  midType				  &gt;::type&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">std::shared_ptr&lt; realType &gt; wheels::dm::factorySharedCallback </td>
          <td>(</td>
          <td class="paramtype">std::function&lt; void(std::shared_ptr&lt; realType &gt;) &gt;</td>          <td class="paramname"><span class="paramname"><em>fun</em></span>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">Args &amp;&amp;...</td>          <td class="paramname"><span class="paramname"><em>args</em></span>&#160;)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="definition">在文件 <a class="el" href="../../dc/d2d/factory_8hpp_source.html">factory.hpp</a> 第 <a class="el" href="../../dc/d2d/factory_8hpp_source.html#l00156">156</a> 行定义.</p>

</div>
</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
制作者&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="../../doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.11.0
</small></address>
</div><!-- doc-content -->
</body>
</html>
